package optimizers.ganeatgeneric;

public class Constants {

	public static final boolean SILENT_MODE = false;

	public static final int BISTABLE_SWITCH = 0;
	public static final int XOR = 1;
	public static int problem = 1;
	public static double inputAmmount = 50;

	public static int popSize = 200;
	public static int generations = 100;
	public static int nParallelThreads = 24;
	public static final int tournamentSize = 16;

	//public static double Kduplex = 0.2;
	//public static final double gSeqInitConcentration = 10;
	//public static final double gSeqInitConcentration_low = .010;
	//public static double gKseqLibMin = 3E-2 / Kduplex;
	//public static double gKseqLibMax = 2e1 / Kduplex;
	//public static final double gActTemplateInitConcentrationLibMin = -60;
	//public static final double gActTemplateInitConcentrationLibMax = 60;
	//public static final double[] gExoLib = { 0.10, 0.15, 0.20, 0.25, 0.30,
	//		0.35, 0.40, 0.45, 0.50, 0.55, 0.60, 0.65, 0.70, 0.80, 0.90, 1.0 };
	//public static double defaultExo = (double) 19 / 30;

	// public static double defaultNodeParam = MyUtil.avgLogScale(gKseqLibMin,
	// gKseqLibMax);
	//public static double defaultNodeParam = 50;
	// public static double defaultConnectionParam =
	// (gActTemplateInitConcentrationLibMin +
	// gActTemplateInitConcentrationLibMax) / 2;
	//public static double defaultConnectionParamAct = 5;
	//public static double defaultConnectionParamInh = 30;

	// Probabilities
	public static final double probMutationOnly = 0.25;
	public static final double interspeciesMatingRate = 0.01;
	public static final double probIndividualMutation = 1; // after birth
	public static final double probParamMutation = .9; // otherwise structure
	// mutation
	public static final double probAddNodeMutation = 0.2; // otherwise add
	// connection
	public static final double probAddActivation = 0.2; // otherwise add
	// inhibition
	public static final double probGeneMutation = 0.8; // changed from 0.4 ->
														// 0.9 -> 0.8 YR
	public static final double probRandomParamMutate = 0.01;
	public static final double probGeneDisabled = 0.75; // if the gene is
	// disabled in one or
	// both parents, there
	// is a pobability it
	// will be disabled in
	// the child

	public static final double probConnectionDisabling = 0.1;	
	
	public static double paramMutateGaussianFactor = 0.2;
	public static double paramMutateGaussianFactor2 = 2; //changed from 2 YR

	// spiciation params
	// coefficients for compatibility distance
	public static double c1 = 1;
	public static double c2 = 1;
	public static double c3 = 0.0;

	public static double speciationThreshold = 0.6;
	public static final boolean autoSpeciationThreshold = true;
	// only if autoSpeciationThreshold = true
	public static int targetNSpecies = 10;
	public static final double speciationThresholdMin = 0.1;
	public static final double speciationThresholdMod = 0.03;

}
